package com.isman.placeslist.util;

import java.util.regex.Pattern;

public class InputValidator{
	private static final String EMAIL_PATTERN = 
         	"^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
	private static final String PASSWORD_PATTERN = 
			"[\\S+]{6,}";
	private static final String DATE_PATTERN = 
      		"(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)";
	private static final String TELEPHONE_PATTERN = 
			"\\d{10}";
	private static final String NAME_PATTRN =
			"[\\S+]{4,10}";
	
//	public static final String EMAIL_ERROR_MESSAGE = "";
//	public static final String NAME_ERROR_MESSAGE = "";
//	public static final String DATE_ERROR_MESSAGE = "";
//	public static final String PASSWORD_ERROR_MESSAGE = "";
//	public static final String TELEPHONE_ERROR_MESSAGE = "";
//	public static final String EMAILORTELEPHONE_ERROR_MESSAGE = "";
    
    public static boolean checkEmail(String s){
    	return Pattern.matches(EMAIL_PATTERN, s) && (s.length() > 0) ? true : false;
    }
    public static boolean checkEmailorTelephone(String s){
    	return (Pattern.matches(EMAIL_PATTERN, s) || Pattern.matches(TELEPHONE_PATTERN, s)) && (s.length() > 0) ? true : false;
    }
    public static boolean checkPassword(String s){
    	return Pattern.matches(PASSWORD_PATTERN, s) && (s.length() > 0) ? true : false;
    }
    public static boolean checkName(String s){
    	return Pattern.matches(NAME_PATTRN, s) && (s.length() > 0) ? true : false;
    }
    public static boolean checkTelephone(String s){
    	return Pattern.matches(TELEPHONE_PATTERN, s) && (s.length() > 0) ? true : false;
    }
    public static boolean checkDate(String s){
    	return Pattern.matches(DATE_PATTERN, s) && (s.length() > 0) ? true : false;
    }
//
//    @Override
//    public void onTextChanged(CharSequence s, int start, int before, int count) {
//    	if (s.length() != 0) {
//    		switch (pattern) {
//			case PATTERN_EMAIL:
//	            if (!Pattern.matches(EMAIL_PATTERN, s)) {
//	                et.setError(error_string);
//					validator.validator(et.getId(),false);
//				}else{
//					validator.validator(et.getId(),true);
//				}
//				break;
//			case PATTERN_PASSWORD:
//	            if (!Pattern.matches(PASSWORD_PATTERN, s)) {
//	                et.setError(error_string);
//					validator.validator(et.getId(),false);
//				}else{
//					validator.validator(et.getId(),true);
//				}
//				break;
//			case PATTERN_NAME:
//	            if (!Pattern.matches(NAME_PATTRN, s)) {
//	                et.setError(error_string);
//					validator.validator(et.getId(),false);
//				}else{
//					validator.validator(et.getId(),true);
//				}
//				break;
//			case PATTERN_TELEPHONE:
//	            if (!Pattern.matches(TELEPHONE_PATTERN, s)) {
//	                et.setError(error_string);
//					validator.validator(et.getId(),false);
//				}else{
//					validator.validator(et.getId(),true);
//				}
//				break;
//			case PATTERN_EMAIL_TELEPHONE:
//	            if (!Pattern.matches(EMAIL_PATTERN, s) && !Pattern.matches(TELEPHONE_PATTERN, s)) {
//	                et.setError(error_string);
//					validator.validator(et.getId(),false);
//				}else{
//					validator.validator(et.getId(),true);
//				}
//				break;
//			case PATTERN_DATE:
//	            if (!Pattern.matches(DATE_PATTERN, s)) {
//	                et.setError(error_string);
//					validator.validator(et.getId(),false);
//				}else{
//					validator.validator(et.getId(),true);
//				}
//				break;
//			}
//        }
//    }
//	
//    @Override
//	public void onFocusChange(View arg0, boolean arg1) {
//		if(!arg1){
//			if(et.getText().toString().equals("")){
//				et.setError("Oops not empty.",error_indicator);
//				validator.validator(et.getId(),false);
//			}else{
//				validator.validator(et.getId(),true);
//			}
//		}else{
//			if(et.getText().toString().equals("")){
//				et.setError("Oops not empty.",error_indicator);
//				validator.validator(et.getId(),false);
//			}else{
//				validator.validator(et.getId(),true);
//			}
//		}
//	}
//
//    public interface IValidator{
//    	void validator(int id, Boolean valid);
//    }
}